1
De Prompts a Pipelines: Una Visión General de la Orquestación con LangChain
AI010Lesson 6
00:00

De Prompts a Pipelines

La Evolución de la Interacción con Modelos de Lenguaje

En lecciones anteriores, nos centramos en interacciones con un solo prompt. Sin embargo, las aplicaciones del mundo real requieren más que una pregunta y una respuesta aisladas. Para construir sistemas de IA escalables, debemos pasar aOrquestación. Esto implica conectar múltiples llamadas al modelo de lenguaje, tomar decisiones lógicas según la entrada del usuario y permitir que el modelo interactúe con datos externos.

Los Bloques Fundamentales de la Orquestación

  • LLMChain: La unidad básica. Combina una plantilla de prompt con un modelo de lenguaje.
  • Cadenas Secuenciales: Permiten crear un flujo de trabajo de múltiples pasos donde la salida de un paso se convierte en la entrada del siguiente.
  • Cadenas de Enrutamiento: Actúan como "controladores de tráfico", utilizando un modelo de lenguaje para decidir qué subcadena especializada debe manejar una solicitud específica (por ejemplo, enviar una pregunta de matemáticas a una "Cadena de Matemáticas" y una pregunta de historia a una "Cadena de Historia").

El Principio Fundamental: La Regla de la Cadena

Las cadenas permiten combinar múltiples componentes —modelos, prompts y memoria— en una sola aplicación coherente. Esta modularidad garantiza que tareas complejas puedan dividirse en pasos manejables y depurables.

Consejo Profesional: Depuración de Pipelines
Cuando tus pipelines se vuelven complejos, usa langchain.debug = True. Esta "visión de rayos X" te permite ver los prompts exactos que se envían y las salidas sin procesar que se reciben en cada etapa de la cadena.
sequential_chain.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>
Question 1
In LangChain, what is the primary difference between a SimpleSequentialChain and a standard SequentialChain?
SimpleSequentialChain supports multiple input variables, while SequentialChain does not.
SimpleSequentialChain only supports a single input and single output flowing between steps.
Only SequentialChain can be used with ChatOpenAI models.
Challenge: Library Support Router
Design a routing mechanism for a specialized bot.
You are building a support bot for a library.

Define the logic for a RouterChain that distinguishes between "Book Recommendations" and "Operating Hours."
Step 1
Create two prompt templates: one for book suggestions and one for library schedule info.
Solution:
book_template = """You are a librarian. Recommend books based on: {input}"""
schedule_template = """You are a receptionist. Answer hours queries: {input}"""

prompt_infos = [
    {"name": "books", "description": "Good for recommending books", "prompt_template": book_template},
    {"name": "schedule", "description": "Good for answering operating hours", "prompt_template": schedule_template}
]
Step 2
Define the router_template to guide the LLM on how to classify the user's intent, and initialize the chain.
Solution:
router_template = MULTI_PROMPT_ROUTER_TEMPLATE.format(
    destinations=destinations_str
)
router_prompt = PromptTemplate(
    template=router_template,
    input_variables=["input"],
    output_parser=RouterOutputParser(),
)
router_chain = LLMRouterChain.from_llm(llm, router_prompt)

chain = MultiPromptChain(
    router_chain=router_chain,
    destination_chains=destination_chains,
    default_chain=default_chain,
    verbose=True
)